Computer virtualization is a technique that involves encapsulating a physical computing machine platform into virtual machine(s) executing under control of virtualization software on a hardware computing platform or “host”. A virtual machine provides virtual hardware abstractions for processor, memory, storage, and the like to a guest operating system. The virtualization software, also referred to as a “hypervisor,” includes one or more virtual machine monitors (VMMs) to provide execution environment(s) for the virtual machine(s). As physical hosts have grown larger, with greater processor core counts and terabyte memory sizes, virtualization has become key to the economic utilization of available hardware.
Remote direct memory access (RDMA) is a technique that enables communication with higher throughput and lower latencies by allowing devices to read and write directly to an application's memory. RDMA uses processor-offloading and operating system-bypass methods such that the protocol processing is offloaded to RDMA peripheral devices. These capabilities have driven the popularity of RDMA in high-performance computing (HPC) applications. It is desirable to support RDMA communication between virtual machines in a virtualized computing environment to provide better performance to applications deployed in VMs.